package com.sz.admin.system.service;

import java.io.File;
import java.util.List;

/**
 * 文件夹监控服务接口
 *
 * @author sz-admin
 * @since 2025-01-13
 */
public interface FolderMonitorService {

    /**
     * 启动所有监控任务
     */
    void startAllMonitors();

    /**
     * 停止所有监控任务
     */
    void stopAllMonitors();

    /**
     * 启动指定监控任务
     */
    void startMonitor(Long monitorId);

    /**
     * 停止指定监控任务
     */
    void stopMonitor(Long monitorId);

    /**
     * 处理文件
     */
    void processFile(Long monitorId, File file);

    /**
     * 检查文件是否为图片
     */
    boolean isImageFile(File file, List<String> allowedTypes);

    /**
     * 获取文件MD5
     */
    String getFileMD5(File file);

    /**
     * 根据日期生成存储路径
     */
    String generateStoragePath(String baseDir);

    /**
     * 记录当前监控状态（用于调试）
     */
    void logMonitoringState();

}